In a system (full-push type) such as a Web server and browsers, clients take the initiative in transmitting data to a server, and in a system (full-pull type) such as a page collection robot of a search engine, a server takes the initiative in collecting data from all clients. The data collected in such systems are in such small units that a high load is imposed on the server. In addition, clients at a higher level in a data collection tree, for example, are required to receive and transmit a large amount of data constantly. In this respect, when the tree structure is fixed, load is likely to be concentrated on specific clients.
For example, Japanese Patent Application Publication No. 2009-044661 discloses a technique of allowing each node to change a hierarchy level to which the node belongs to another hierarchy level in a hierarchically structured network system without accompanying discontinuance of streaming distribution from the server. Japanese Patent Application Publication No. 2009-044661 particularly discloses a technique of allowing each node to appropriately change the hierarchy level according to indexes based on buffering amounts, hardware resources and transfer rates of the node itself and upper and lower nodes being in communication with the node. However, in this technique, since a client having high capability in distributing data are placed simply at a higher level, load is always concentrated on the client having high capability. In addition to this, when a failure occurs in the client having high capability, data distribution becomes impossible. Japanese Patent Application Publication No. 2009-044661 does not suggest a solution to achieve highly reliable data collection while avoiding load concentration on a specific client in order that multiple clients can transmit data to a single server continuously and stably.
Japanese Patent Application Publication No. 2007-228064 relates to a technique for achieving reliability in application-layer multicast communication (simultaneous distribution). In this technique, each of receivers makes a notification of a reception result (ACK/NACK) of multicast data, and the data is retransmitted depending on the result. The technique is particularly characterized in that a notification of ACK/NACK and retransmission of data are performed locally between sibling nodes having the same parent node in a multicast tree. The method is assumed to be used in multicast, that is, in a case where the same data is simultaneously distributed from the server to receivers. Only when the multicast is employed, a reception confirmation and retransmission can be performed locally between the sibling nodes. However, this method cannot be applied to a situation where clients need to confirm whether a server receives data after transmitting the data to the server, Shuichi Shimizu, “Recursive Point-to-group Routing for Reliable End-host Multicast.” Transactions of Information Processing Society of Japan, Vol. 49. No. 3, March 2008 is a paper related to a Peer to Group (P2G).